import { onMounted, onUnmounted } from 'vue'
// - hooks 函数式编程 可以把数据状态 生命周期 复用
// - 事件监听 定时器 unmounted  移除
// - vueUse / ahooks
/**
 * 窗口缩放 three.js的重绘
 * @pram handlerFn 回调函数
 * @pram immediate 立即调用
 */
export function useResize<T = any>(
    handlerFn: () => T,
    immediate: boolean = true
) {
    // 严谨
    const handler = () => {
        handlerFn()
    }
    onMounted(() => {
        window.addEventListener('resize', handler);
        immediate && handler();
    })
    onUnmounted(() => {
        window.removeEventListener('resize', handler)
    })
}